一、VR-GCN [2017]

《Stochastic Training of Graph Convolutional Networks with Variance Reduction》

  1. 图卷积网络(graph convolution network: GCN )将卷积神经网络CNN 推广到图结构化数据。图卷积(graph convolution)操作对节点的所有邻居应用相同的线性变换,然后是均值池化和非线性激活函数。通过堆叠多个图卷积层,GCN 可以利用来自遥远邻居的信息来学习 node representationGCN 及其变体已被应用于半监督节点分类、inductive node embedding 、链接预测、 以及知识图谱,超越了不使用图结构的多层感知机 MLP 以及不使用节点特征的 graph embedding 方法。

    然而,图卷积操作使得 GCN 难以高效地训练。考虑一个 L 层的图卷积神经网络GCN,节点的第 l 层的 hidden feature 需要递归地通过其邻域内所有节点的第 l1hidden feature 来计算。因此,如下图 (a) 所示,单个节点的感受野(receptive field) 的大小随网络层数呈指数型增长。

    • 为解决感受野太大的问题,《Semi-supervised classification with graph convolutional networks》 提出通过 batch 算法来训练 GCN,该方法同时计算 batch 内所有节点的 representation。但是,由于 batch 算法收敛速度慢,以及需要将整个数据集放入到 GPU 中,因此无法处理大规模数据集。

    • 《Inductive representation learning on large graphs》 尝试邻域采样( neighbor sampling: NS) 的方法为GCN 提出随机训练算法。在 NS 算法中,他们并未考虑节点的所有邻居,而是为每个节点在第 l 层随机采样 D(l) 个邻居,如图 (b) 所示。这可以将感受野的大小减小到 lD(l) 。他们发现对于两层的 GCN 网络,选择 D(1)=10,D(2)=25 可以实现与原始 GCN 相当的性能。

    理论上当 D(l)=1 时(即每个节点的预测仅依靠它本身,不依赖任何其它邻域节点)计算效率最高,此时模型退化为基于节点的多层感知机 MLP 。虽然 Hamilton 的方法复杂度降低,但是仍然比 MLP 要大 D(1)×D(2)=250 倍,仍然无法让人满意。

    另外,使用基于邻域采样的随机训练算法能否确保模型收敛,尚无理论上的保证。

    在论文 《Stochastic Training of Graph Convolutional Networks with Variance Reduction》 中,作者为 GCN 设计了新颖的基于控制变量的( control variate-based )随机逼近算法,即 GCN with Variance Reduction: VRGCN

    VRGCN 利用节点的历史激活值(即历史hidden feature)作为控制变量(control variate)。作者表明:通过邻域采样NS 策略得到的 hidden feature 的方差取决于 hidden feature 的幅度(magnitude)(因为 hidden feature 是一个向量),而VRGCN 得到的 hidden feature 的方差取决于 hidden feature 和它历史均值之间的差异( difference)。

    另外,VRGCN 还带来了理论上的收敛性保证。VRGCN 可以给出无偏的(相比较于原始的 GCN)、零方差的预测。并且训练算法可以收敛到GCN 损失函数的局部最优值,而与采样大小 D(l) 无关。理论分析表明:VRGCN 可以通过仅对节点采样两个邻居节点来显著降低模型的时间复杂度,同时保持模型的质量。

    作者在六个 graph 数据集上对 VRGCN 进行了实验测试,并表明 VRGCN 显著降低了具有相同感受野大小的 NS 的梯度的偏差(bias)和方差(variance)。尽管仅采样 D(l)=2 个邻居,但是 VRGCN 在所有数据集上的可比数量的 epoch 中实现了与精确算法相同的预测性能,即,VRGCN 降低了时间复杂度同时几乎没有损失收敛速度,这是我们可以预期的最好结果。在最大的 Reddit 数据集上,VRGCN 算法的训练时间相比精确算法(《Semi-supervised classification with graph convolutional networks》)、邻域采样算法(《Inductive representation learning on large graphs》)、重要性采样算法(《Fastgcn: Fast learning with graph convolutional networks via importance sampling》)要少 7 倍。

1.1 模型

1.1.1 GCN

  1. 我们以半监督节点分类任务的 GCN 作为说明,当然我们的算法不局限于任务类型,也不局限于模型类型。我们的算法适用于任何涉及到计算邻居平均激活值的其它模型,以及其它任务。

  2. 给定图 G=(V,E) ,其中 V={v1,,vn} 为节点集合, E={ei,j} 为所有边集合, 边 ei,j=(vi,vj) 为无向边。

    每个节点 vV 关联一个特征向量 xv ,以及一个label yv 。在半监督学习场景中,我们只能观测到部分节点的 label,这部分节点的集合记作 VY 。我们的目标是预测剩余节点集合 VU=VVY 中每个节点的 label

  3. 定义邻接矩阵 AR|V|×|V| ,其中 Ai,j 表示节点 vi,vj 之间的链接权重,如果 vi,vj 之间不存在链接则 Ai,j=0 。由于是无向图因此 A 是对称矩阵。

    定义传播矩阵 propagation matrix PR|V|×|V| 为归一化的邻接矩阵:

    A~=I+AD~=diag(D~i,i),D~i,i=jA~i,jP=D~1/2A~D~1/2

    其中 A~ 为添加了 self-loop 的邻接矩阵。

    因此一个图卷积层可以定义为(假设当前为第 l+1 层):

    Z(l+1)=PH(l)W(l)H(l+1)=σ(Z(l+1))

    其中:

    • H(l) 为第 l 层的hidden feature 矩阵,也称作激活矩阵( activataion matrix)。

      vhv(l) 表示节点 vhidden feature 向量,也称作激活值( activation)。

    • H(0)=X 为输入的特征矩阵,第 vxv 表示节点 v 的特征向量。

    • W(l) 为第 l+1 层模型待学习的权重矩阵,它在所有节点上共享。

    • σ() 为非线性激活函数。

    假设 GCN 模型有 L 层,则GCN 模型的训练损失函数为:

    J=1|VY|vVYf(yv,zv(L))

    其中:

    • f(,) 为单个节点的损失函数。

    • zv(L)Z(L) 的第 v 行,表示节点 vfinal representation

  4. 卷积层通过 PH(l) 计算邻域均值,从而将邻域信息传递到当前节点。定义节点 v 的邻域集合为 Nv ,则节点 v 的邻域均值 hidden feature 向量为:

    nv(l)=u=1VPv,uhu(l)=uNvPv,uhu(l)

    它就是 PH(l) 的第 v 行,等于邻域hidden feature 的加权和。

    定义节点 v 在第 l 层的感受野( receptive field )为:为计算 zv(L) 所需要的 hu(l) 的节点集合。

    • 对于一个 L 层的 GCN,节点 v 的所有感受野就是它的 L-hop 邻域集合。

    • P=I 时,GCN 退化为一个多层感知机 MLP,其中不涉及任何图结构信息。对于多层感知机,节点 v 的感受野就是它本身 {v}

  5. GCN 训练损失函数的 batch 梯度为:

    J=1|VY|vVYf(yv,zv(L))

    由于每次迭代都涉及整个标记节点集合 VY ,因此计算 batch 梯度代价太大。

    一个可行的方案是采用随机梯度作为 batch 梯度的近似值:

    J1|VB|vVBf(yv,zv(L))

    其中 VBVY 为标记节点集合的一个 mini-batch

    但是,由于感受野太大,mini-batch 梯度的计算代价仍然很高。例如,NELL 数据集的 2-hop 邻域平均包含 1597 个节点,这意味着在一个 2GCN 中,为计算单个节点的梯度需要涉及 1597/65755 = 2.4% 的全部节点。

1.1.2 GraphSAGE

  1. 为降低感受野大小,GraphSAGE 提出了邻域采样(neighbor sampling: NS)策略。 在第 l 层,对于每个节点 NS 策略随机采样 D(l) 个邻居,并基于蒙特卡洛近似来给出节点 v 的邻域均值 hidden feature nv(l) 的一个近似估计 nNS,v(l)

    nv(l)nNS,v(l)=|Nv|D(l)uN^v(l)Pv,uhu(l)

    其中 N^v(l)Nv 为一个大小为 D(l) 的、邻域 Nv 的一个随机子集。

    因此 NS 策略降低了感受野大小,从 L-hop 邻域大小降低到采样后的邻域大小 l=1LD(l)

    我们将 nNS,v(l) 称作 nv(l)NS 估计量,而 nv(l) 为精确值。

    上述邻域采样策略以矩阵的形式可以重写为:

    Z(l+1)=P^(l)H(l)W(l)H(l+1)=σ(Z(l+1))

    其中传播矩阵 P 被替换为一个稀疏的、无偏的估计 P^(l) ,即满足 : E[P^(l)]=P 。采样后的传播矩阵 P^(l) 为:

    P^v,u(l)={|Nv|D(l)Pv,u,uN^v(l)0,else
  2. GraphSAGE 的随机梯度下降过程中,存在两个随机性来源:

    • 选择 mini-batch VBVY 引入的随机性。

    • 选择大小为 D(l) 的邻域集合 N^v(l)Nv 引入的随机性。

    尽管 P^(l)P 的无偏估计,但是由于非线性函数 σ() 的存在, σ(P^(l)H(l)W(l)) 并不是 σ(P(l)H(l)W(l)) 的无偏估计。因此,在 NS 策略中节点的 final representaion 矩阵 Z(L) 以及梯度 f(yv,zv(L)) 都是有偏的。最终 NS 策略中随机梯度下降 SGD 的收敛性得不到保障,除非采样大小 D(l) 趋向于无穷大。因为这时候计算的梯度 f(yv,zv(L)) 是有偏的,无法保证它是沿着梯度的正确方向。

  3. GraphSAGE 中,由于梯度是有偏的,因此 NS 策略中的采样大小 D(l) 必须很大,从而确保模型得到和 exact 策略相近的预测性能。

    GraphSAGEHamilton 选择 D(1)=10,D(2)=25 ,因此感受野的大小为 D(1)×D(2)=250,这远大于 MLP 的感受野(大小为 1),因此训练仍然代价较高。

1.1.3 FastGCN

  1. FastGCN 是另一种类似于NS 的基于采样的算法。FastGCN 并没有为每个节点采样邻域,而是直接采样每一层的、所有节点共享的感受野。

    对于第 l 层,FastGCN 首先采样 D(l) 个样本的集合 S(l)={v1(l),,vD(l)(l)} ,然后通过这 D(l) 个样本来计算每个节点 v 的邻域均值 hidden feature nv(l)

    nv(l)=u=1VPv,uhu(l)|V|D(l)uSPv,uhu(l)/q(u)

    其中重要性分布:

    q(u)v=1|V|Pu,v2

    我们将这种邻域均值 hidden feature 的估计称作重要性采样(importance sampling: IS)。

    • 注意,IS 采样策略和 NS 采样策略的区别在于:前者为第 l 层所有节点采样 D(l) 个节点,后者为第 l 层每个节点分别采样 D(l) 个节点。

    • D(l) 较大且选择 q(u)(u,v)E1|Nv| 时,IS 可以视为 NS ,因为每个节点 v 以概率 1|Nv| 来选择其邻居节点 u 。因此 NS 可以看作是 IS 的一种。

  2. 尽管 IS 策略的感受野大小为 lD(l) 要小于 NS 策略的感受野大小 lD(l) ,但是 IS 仍然仅在采样大小 D(l) 达到无穷大时才可以确保模型收敛。

    从实验来看,我们发现 IS 策略的效果要比 NS 更差,这是因为:在 IS 策略中我们为所有节点采样了共同的一组节点集合,对于部分节点我们采样到了它们的很多个邻居,对于另一些节点我们没有采样到任何邻居。对于后者,这些节点的邻域均值 hidden feature nv(l) 为零,从而导致 hidden feature hv(l) 为零 。

1.1.4 控制变量

  1. 我们提出一种新的基于控制变量(control variate: CV)的算法,该算法基于历史 hidden feature 来降低估计量的方差。

  2. 当计算邻域均值 hidden feature nv(l)=uNvPv,uhu(l) 时,由于需要递归计算,因此我们无法计算所有的 hu(l) 项 。我们的思想是:对于每个 hu(l) ,我们维护一份历史均值 h¯u(l) 作为其计算代价负担得起(affordable)的近似值。每次计算 hu(l) 时,我们都用 hu(l) 去更新 h¯u(l) 。当训练期间模型的权重变化比较缓慢时,我们预期 h¯u(l)hu(l) 是近似的。

    Δhu(l)=hu(l)h¯u(l) ,则有:

    nv(l)=uNvPv,uhu(l)=uNvPv,uΔhu(l)+uNvPv,uh¯u(l)

    定义:

    nCV,v(l)=|Nv|D(l)uN^v(l)Pv,uΔhu(l)+uNvPv,uh¯u(l)

    其中 N^v(l)Nv 为一个大小为 D(l) 的、邻域 Nv 的一个随机子集。

    这里的核心思想是:主要的 h¯u(l) 不用递归计算,可以直接从内存中获取到;次要的 Δhu(l) 需要递归计算,但是仅对它采样一小部分的邻域。同时,这进一步促进了模型权重的缓慢变化。

    因为主要部分是精确值,次要部分是近似值,因此这会大幅度降低近似计算带来的影响。

    则有:nv(l)nCV,v(l) 。我们称 nCV,v(l) 为节点的邻域均值 hidden feature nv(l)CV 估计量。写作矩阵的形式为:

    Z(l+1)=(P^(l)(H(l)H¯(l))+PH¯(l))W(l)H(l+1)=σ(Z(l+1))

    其中 H¯(l) 的各行为 h¯u(l) 拼接而成 。

    这里我们仅对 Δhu(l) 的项进行蒙特卡洛近似。对所有的 h¯u(l) 取平均是可以接受的,因为它们不需要进行递归地计算。

    由于我们预期 h¯u(l)hu(l) 是近似的,因此 Δhu 很小。因此 nCV,v(l) 具有比 nNS,v(l) 更小的方差。具体而言,如果模型的权重保持固定,则 h¯u(l) 应该最终等于 hu(l) ,因此有:

    nCV,v(l)=0+uNvPv,uh¯u(l)=uNvPv,uhu(l)=nv(l)

    即估计量的偏差和方差都为零。

  3. 我们定义控制变量(control variate)为:

    δv(l)=nCV,v(l)nNS,v(l)=uNvPv,uh¯u(l)|Nv|D(l)uN^v(l)Pv,uh¯u(l)

    我们将控制变量 δv(l) 添加到邻域采样策略 NSnNS,v(l) 中,从而降低估计量的方差。

    现在 δv(l) 仅依赖于不需要递归计算的 h¯u(l),因此 δv(l) 也不需要递归计算。

  4. 采用 CV 估计量来训练 GCN 的方法和 NS 估计量都相同。具体而言,在 GCN 的每轮迭代中都执行以下算法。

    VRGCN 迭代算法:

    • 随机选择一个 mini-batch 的节点 VBVY

    • 构建一个计算图,其中包含当前 mini-batch 每个节点的 hidden feature 计算时需要的其它节点的 hidden feature hv(l) 及其历史均值 h¯v(l)

    • 根据下面的前向传播公式进行传播:

      Z(l+1)=(P^(l)(H(l)H¯(l))+PH¯(l))W(l)H(l+1)=σ(Z(l+1))

      这里控制变量 δv(l) 的矩阵形式为:PH¯(l)P^(l)H¯(l)

    • 通过反向传播计算梯度,并更新参数。

    • 更新 hidden feature 历史均值 h¯v(l)

    其中,第二步的计算图是通过每层的感受野 R(l) 以及对应的传播矩阵 P^(l) 来定义。感受野 R(l) 定义了需要第 l 层哪些节点的 hidden feature hv(l) 来计算当前的 mini-batch

    我们自顶向下构建 R(l) 以及 P^(l)

    • R(L)=VB

    • 对于第 l 层,对 R(l+1) 中的每个节点我们都从它们的邻域中各自随机选择 D(l) 个邻居节点并加入到 R(l) 中。

      注意:我们假设 hv(l) 永远都必须参与 hv(l+1) 的计算,即 v 每次都作为其自己的邻居一定被选中。

    VRGCN 的感受野如下图 (c) 所示,其中红色节点为感受野,其 hidden feature hv(l) 来计算当前的 mini-batch 。蓝色节点的历史 hidden feature 均值 h¯v(l) 也用于计算当前的 mini-batch

1.1.5 理论分析

  1. 为便于理论分析估计量的方差,这里我们假设所有的特征都是一维的。通过分别处理每个维度,我们的分析结论可以推广到多维。

  2. 假设 N^v(l) 通过从 Nv 进行无放回采样 D(l) 个样本得到,则我们有结论:

    VarN^v(l)[|Nv|D(l)uN^v(l)xu]=Cv(l)2D(l)u1Nvu2Nv(xu1xu2)2

    其中 Cv(l)=1(D(l)1)/(|Nv|1) 。 证明见原始论文的附录。

    根据以上结论,对于 NS 估计量我们有:

    VarN^v(l)[nNS,v(l)]=Cv(l)2D(l)u1Nvu2Nv(Pv,u1hu1(l)Pv,u2hu2(l))2

    即邻域内所有邻居pair 对的加权 hidden feature 之间的距离之和。如果邻域内所有节点的 Pv,uhu 都相等,则该方差为零。此时,任何邻域节点都包含了整个邻域的信息。

    同样地,对于 CV 估计量我们有:

    VarN^v(l)[nCV,v(l)]=Cv(l)2D(l)u1Nvu2Nv(Pv,u1Δhu1(l)Pv,u2Δhu2(l))2

    相比较于 NS 估计量,这里仅需要将 hu(l) 替代为 Δhu(l) 。由于 Δhu(l) 通常都比 hu(l) 更小,因此 CV 估计量通常都比 NS 估计量的方差更小。

    进一步地,正如我们在下文中分析到的,由于训练期间 间 Δhu(l) 收敛到零,因此我们不仅降低了方差,甚至消除了方差。

  3. 除了较小的方差,CV 估计量比 NS 估计量还具有更强的理论收敛性保证。这里我们提出两个定理:

    • 如果模型参数固定,则在 inference 期间,CV 会在 LL 为卷积层的层数)个 epoch 之后产生 exact 预测。

    • 无论邻域采样大小如何,模型都会朝着局部最优解收敛。

  4. 假设算法执行多个 epoch,在每个 epoch 中我们将节点集合 V 划分为 Imini-batch{V1,,VI} 。在第 i 个迭代步,我们对 mini-batch Vi 中的节点进行前向传播和反向传播,从而更新模型参数以及节点的历史 hidden feature 均值。

    注意:在每个 epoch 中我们扫描所有节点,而不仅仅是标记的训练节点,从而确保每个 epoch 中对每个节点的历史 hidden feature 均值至少进行了一次更新。

    记第 i 次迭代中模型的参数为 Wi 。在训练期间 Wi 通过 SGD 随时间更新,在测试期间 W=WT 被固化下来,其中 T 为迭代的总次数。

    记第 i 次迭代的 exact hidden featureHi(l) ,以及对应的 ZZi(l) ;使用 CV 估计量的 hidden featureHCV,i(l) ,以及对应的 ZZCV,i(l)

    在第 i 轮迭代,网络计算 mini-batch Vi 的损失函数和梯度,其中:

    • 对于 exact 算法,其损失函数和梯度分别为:

      J(Wi)=1|Vi|vVif(yv,zi,v(L))Gi(Wi)=JW1|Vi|vViWif(yv,zi,v(L))

      对于 exact 算法,如果 Wiconstant 序列,则可以忽略下标 i

    • 对于 CV 算法,其损失函数和梯度分别为:

      JCV(Wi)=1|Vi|vVif(yv,zi,CV,v(L))Gi,CV(Wi)=JCV,W1|Vi|vViWif(yv,zi,CV,v(L))

      梯度 Gi,CV(Wi) 有两个随机性来源:

      • 选择 mini-batch ViVY 引入的随机性。

      • 选择大小为 D(l) 的邻域集合 N^v(l)Nv 引入的随机性(由采样后的邻接矩阵 P^ 来刻画) 。

      因此我们考虑 Gi,CV(Wi)Vi 的期望、或者对 P^ 的期望、或者对二者的共同期望。

  5. 以下定理解释了 CV 的近似预测和 exact 预测之间的关系:

    对于一个 constant sequence Wi=W ,以及任意 i>L×I (即 Lepoch 之后),通过 CV 估计量计算的 hidden featureexact 计算的相等。即:

    Hi,CV(l)=Hi(l),1lLZi,CV(l)=Zi(l),1lL

    其证明见原始论文附录。

    该定理表明:在 inference 期间,我们可以使用 CV 估计量进行前向传播 Lepoch (通常 L 很小,比如两层的 GCN 网络中 L=2 ),然后得到 exact 预测。这优于 NS 估计量,因为除非邻域大小无穷大,否则 NS 估计量无法恢复 exact 预测。

    和直接进行 exact 预测的 batch 算法相比,CV 估计量可扩展性更强,因为它不需要将整个图加载到内存中。

  6. 以下定理表明,无论邻域采样大小 D(l) 如何,采用近似梯度 Gi,CV(Wi)SGD 训练仍然收敛于局部最优。因此我们可以选择任意小的 D(l) 而不必担心收敛性。

    定理:假设:

    • 激活函数 σ()ρLipschitz

    • 损失函数的梯度 zf(y,z)ρLipschitz 且有界的。

    • 对于任意的采样 P^ 、任意的节点子集 V~ 、任意的权重矩阵,都有 ||G(W)||,||GV~,CV(W)||,||WJ(W)|| 都是有界的,且上界都是 G (其中 G>0) 。

    • 损失函数 J(W)ρsmooth 的,即:对于任意 W1,W2 ,有:

      |J(W2)J(W1)<J(W1),W2W1>|ρ2||W2W1||F2

      其中 <A,B>=tr(AB) 为矩阵 AB 的内积。

    则存在 K>0 ,使得 N>L×I ,当我们执行 1RNSGD 迭代时,有:

    ER||J(WR)||F22J(W1)J(W)+K+ρKN

    其中:

    • R[1, N] 之间均匀随机分布的变量。

    • 每次迭代都使用 CV 的近似梯度 Gi,CV(Wi)

      Wi+1=Wiγ×Gi,CV(Wi)

      其中步长 γ=min{1ρ,1N}

    从定理中我们看到:limNER||J(WR)||F2=0 。因此当迭代次数 N 趋向于无穷时,我们的训练算法收敛到局部最优解(梯度为零)。完整的证明见原始论文附录。

    简而言之,我们证明了近似梯度 Gi,CV(Wi)Gi(Wi) 的无偏估计,并且随着 i 这种渐进无偏的 SGD 收敛到局部最优解。

1.1.6 dropout

  1. 这里我们引入第三种随机性来源:对输入特征的随机 dropout

    Dp(X)=MXdropout 算子,其中 Mi,jBern(p) 为独立同分布( iid )的伯努利随机变量, 是逐元素的乘积。

    EM[] 为针对 dropout 的期望。

  2. 引入 dropout 之后,即使在 GCN 中采用 exact 算法,hidden feature hv(l) 也是随机变量,其随机性来源于 dropout

    此时节点的邻域均值 hidden feature nv(l) 也是一个随机变量,我们希望设计它的一个计算代价较低的估计量,从而使得二者具有相同的分布。但是这种估计量非常难以设计,因此我们设计了一个估计量 nCVD,v(l) ,使得它和 nv(l) 具有相同的均值和方差。即:

    EN^v(l)EM[nCVD,v(l)]=EM[nv(l)]VarN^v(l)VarM[nCVD,v(l)]=VarM[nv(l)]
  3. dropout 场景下, Δhu(l)=hu(l)h¯u(l) 不再很小,甚至是当 h¯u(l)hu(l) 具有相同分布的时候。为此,我们设计了另一种随机逼近算法,称作 dropout 控制变量( control variate for dropout: CVD )。

    我们的方法基于权重缩放( weight scaling )技术来近似计算均值 μv(l)=EM[hv(l)] 。即在 dropout 模型中,我们可以运行没有 dropout 的模型的copy,从而获得均值 μv(l) ,如下图 (d) 所示。

  4. 我们通过 μu(l) 及其历史均值 μ¯u(l) 来设计 CVD 估计量。

    我们将 nv(l) 重写为:

    nv(l)=uNvPv,uhu(l)=uNvPv,u(h˚u(l)+Δμu(l)+μ¯u(l))

    其中:

    • Δμu(l)=μu(l)μ¯u(l)μu(l) 及其历史均值 μ¯u(l) 之间的差距。因此,可以将 μu(l) 视为 CV 估计量中的 hu(l)

    • h˚u(l)=hu(l)μu(l)hu(l) (带 dropout )和 μu(l) (不带 dropout )之间的差距。

    因此定义:

    nCVD,v(l)=|Nv|D(l)uN^v(l)Pv,uh˚u(l)+|Nv|D(l)uN^v(l)Pv,uΔμu(l)+uNvPv,uμ¯u(l)

    则有: nv(l)nCVD,v(l)

    第一项考虑 dropout current valueno-dropout current value 之间的 gap,使用 是为了计算方差的方便。第二项考虑 no-dropout current valueno-dropout avg value 之间的 gap。第三项就是 no-dropout avg value 本身。

    考虑第一项对于 dropout 具有零均值,即 EM[h˚u(l)]=0 ,因此有:

    EN^v(l)EM[nCVD,v(l)]=0+EN^v(l)EM[nCV,v(l)]=EM[nv(l)]

    第一个等式成立是因为当移除 dropout 时, CVD 估计量就退化为 CV 估计量。

    因此,CVD 估计量是无偏的。下面我们即将看到,如果 hv(l) 之间不相关,则 CVD 估计量具有良好的方差。

  5. 假设节点的hidden feature 之间不相关,即 v1v2,CovM[hv1(l),hv2(l)]=0 ,则我们得到两个结论:

    • 假设 N^v(l) 通过从 Nv 进行无放回采样 D(l) 个样本得到, x1,,x|V| 为一维随机变量,且满足:

      v,E[xv]=0v1v2,Cov[xv1,xv2]=0

      则有:

      VarN^v(l)VarX[|Nv|D(l)uN^v(l)xu]=|Nv|D(l)uNv(l)Var[xu]
    • XY 为两个随机变量,并且 f(X,Y)g(Y) 为两个函数。如果 EX[f(X,Y)]=0 ,则有:

      VarX,Y[f(X,Y)+g(Y)]=VarX,Yf(X,Y)+VarYg(Y)

    这些结论的证明参考原始论文的附录。

    通过上述结论,我们有:

    VarN^v(l)VarM[nCVD,v(l)]=VarN^v(l)VarM[|Nv|D(l)uN^v(l)Pv,uh˚u(l)]+VarN^v(l)[|Nv|D(l)uN^v(l)Pv,uΔμu(l)+uNvPv,uμ¯u(l)]

    我们将第一项视为从 dropout 中引入的方差 (variance from dropout: VD),第二项视为从邻域采样中引入的方差 (variance from neighbor sampling: VNS)。理想情况下,VD 应该等于 VarM[nv(l)]VNS 应该等于零。

    和前述相同的分析,我们可以通过将 hv(l) 替换为 μv(l) 来分析 VNS 。令 :

    su(l)=VarM[hv(l)]=VarM[h˚u(l)]ξv(l)=VarM[nv(l)]=uNvPv,u2su(l)

    根据这里的第一个结论,CVDVD 部分为:uNvPv,u2su(l)=ξv(l) ,刚好就是 exact 估计量的 VD 部分。

  6. 我们总结出所有这些估计量及其方差,推导过程参考原始论文。

    • exactVNS 部分为零, VD 部分为 ξv(l)

    • NS 估计量:VNS 部分为 Cv(l)2D(l)u1Nvu2Nv(Pv,u1μv1(l)Pv,u2μv2(l))2VD 部分为 |Nv|D(l)ξv(l)

    • CV 估计量:VNS 部分 Cv(l)2D(l)u1Nvu2Nv(Pv,u1Δμv1(l)Pv,u2Δμv2(l))2VD 部分(3+|Nv|D(l))ξv(l)

    • CVD 估计量:VNS 部分 Cv(l)2D(l)u1Nvu2Nv(Pv,u1Δμv1(l)Pv,u2Δμv2(l))2VD 部分为 ξv(l)

    CV/CVDVNS 取决于 Δμv ,随着训练的进行 Δμv 收敛到零;NSVNS 取决于非零的 μv

1.1.7 预处理

  1. 有两种可能的dropout 方式:

    Z(l+1)=PDp(H(l))W(l)Z(l+1)=Dp(PH(l))W(l)

    区别在于:第一种方式是在邻域聚合之前应用 dropout、第二种方式在邻域聚合之后应用 dropout《Semi-supervised classification with graph convolutional networks》 采用前者,而我们采用后者。

    实验效果上,我们发现这两种方式的效果都相差无几,因此不同的方式不影响模型的效果。采用第二种方式的优势是提升训练速度:我们可以对输入进行预处理,并定义 U(0)=PH(0)=PX ,然后将 U(0) 作为新的输入。采用这种方式之后,图卷积层的实际数量减少了一层。现在第一层仅是一个全连接层,而不是图卷积层。

    由于大多数GCN 仅有两层卷积层,因此这种方式可以显著减少感受野大小,并加快训练速度。我们称该优化为预处理策略(preprocessing strategy)。

1.2 实验

  1. 我们在六个数据集上通过实验验证了 VRGCN 算法的方差和收敛性,其中包括来自GCNCiteseer, Cora, PubMed, NeLL 四个数据集以及来自 GraphSAGEPPI, Reddit 两个数据集。

    对于这些数据集的统计见下表所示。最后两列给出了节点的 1-hop 邻域平均大小、2-hop 邻域平均大小。由于是无向图,因此每条边被计算两次,但是 self-loop 仅被计算一次。

    • 对于每个数据集,所有模型在该数据集上采用相同的训练集/验证集/测试集拆分 (而不是每个模型单独的一个拆分)。

    • 对于 PPI 数据集(多标签分类数据集)我们报告测试集的 Micro-F1 指标,对于其它多分类数据集我们报告准确率。

    • 对于Citeseer, Cora, PubMed, NELL 数据集,baseline 模型为 GCN ;对于 PPI, Reddit 数据集,baseline 模型为 GraphSAGE

    • 对于收敛性实验,我们在 Citeseer, Cora, PubMed, NELL 数据集上重复执行 10 次,在 Reddit, PPI 数据集上重复执行 5 次。

    • 所有实验都在 Titan X GPU 上完成。

  2. 首先我们评估预处理(PreProcessing: PP)的影响。我们比较了三种配置:

    • M0dropout 在前、计算邻域均值在后,且计算邻域的 exact 均值(未对邻域进行任何采样)

    • M1:计算邻域均值在前、dropout 在后,且计算邻域的 exact 均值(未对邻域进行任何采样)

    • M1 + PP:计算邻域均值在前、dropout 在后,且使用较大的邻域大小 D(l)=20 来对邻域采样从而计算邻域的近似均值,并且预处理 PH(0) 使得第一层邻域均值是 exact的。

    实验结果如下所示。我们固定了训练的 epoch,然后给出不同配置的 GCN 在不同数据集上的测试accuracy 。我们的实现不支持 NELL 上的 M0 配置,因此未报告其结果。

    可以看到:三种配置都具有相近的性能,即更换 dropout 的位置不会影响模型的预处性能。因此后续的收敛性实验中,我们以最快的 M1 + PP 配置作为 exact baseline

  3. 然后我们评估 VRGCN 的收敛性。我们将 M1 + PP 配置作为 exact baseline,然后对比 D(l)=2 的情况。我们无法配置 D(l)=1,因为感受野中至少包含节点本身,如果 D(l)=1 则邻域聚合时不考虑任何其它节点,这退化为 MLP 。我们对四种近似策略进行比较,其中 D(l)=2

    • NS :没有使用预处理的 NS 估计量(邻域采样)。

    • NS + PP:采用了预处理的 NS 估计量。

    • IS + PP:采用了预处理的 IS 估计量(重要性采样)。

    • CV + PP:采用了预处理的 CV 估计量。

    • CVD + PP:采用了预处理的 CVD 估计量。

    D(l)=2 时这四种算法在每个 epoch 都具有很低的、相近的时间复杂度,相比之下 baseline M1 + PPD(l)=20 。我们比较了这些方法和 baseline 相比,它们的收敛速度。

    • 首先我们不考虑 dropoutdropout rate = 0 ),然后绘制不同方法每个 epoch 的损失函数值,如下图所示。

      在前 4 个数据集中,CV + PP 的损失曲线和 exact 损失曲线相重叠;部分数据集上未给出 NS 损失曲线和 IS + PP 损失曲线,因为损失太大;我们并未绘制 CVD + PP ,因为当 dropout rate = 0 时,它等价于 CV + PP

      结论:

      • CV + PP 总是可以达到和 M1 + PP 相同的训练损失。

      • NS, NS + PP, IS + PP 由于它们的梯度是有偏的,因此其训练损失更高。

      这些结果和前述定理相符。定理指数:CV 估计量的训练能够收敛到 exact 的局部最优,和 D(l) 无关。

    • 然后我们考虑使用 dropout,然后比较每个 epoch 使用不同方式训练的模型验证accuracy 。其中不管训练算法采取何种方式,inference 都采用 exact 算法来预测。结果如下图所示。注意:NSReddit 数据集上收敛到 0.94、在 PPI 数据集上收敛到 0.6,由于太低所以未在图中给出。

      结论:

      • 当存在 dropout 时,CVD + PP 是唯一可以在所有数据集上达到和 exact 算法相近的验证准确率的算法。

      • 当存在 dropout 时,CVD + PP 的收敛速度(以 epoch 数量衡量)和 M1 + PP 相当。这意味着尽管 D(l) 小了 10倍,但是 CVD + PP 的收敛速度几乎没有损失。

        这已经是我们期待的最佳结果:具有和 MLP 可比的计算复杂度,但是具有和 GCN 相近的模型质量。

      • PubMed 数据集上,CVD + PP 性能比 M1 + PP 好得多,我们怀疑它找到了更加的局部最优值。

      • PPI 以外的所有其它数据集,简单的 CV + PP 的准确率就可以和 M1 + PP 相媲美。

      • Reddit,PPI 数据集上,IS + PP 性能比 NS + PP 更差。这可能是部分节点没有采样到任何邻居,正如我们前文所述。

      • 我们对 IS + PP 的准确率结果和 FastGCN 的报告结果相符,而他们的 GraphSAGE baseline 并未实现预处理技术。

  4. 下面给出了在最大的 Reddit 数据集上达到给定的 96% 验证准确率所需要的平均训练 epoch 和训练时间。可以看到:CVD + PPexact7 倍左右。这是因为 CVD + PP 的感受野大小显著降低。

    另外,NS, IS + PP 无法收敛到给定的准确率(即无法收敛到 96% 验证准确率)。

  5. 我们使用相同的、由 M1 + PP 训练的模型,然后采用不同的算法进行预测,并给出预测质量。

    如前所述,CV 可以达到和 exact 算法相同的测试准确率,而 NS, NS + PP 的性能要差得多。

  6. 最后,我们比较了训练期间第一层权重每一维梯度的平均 bias 和方差(对权重自身进行了归一化)。

    结论:

    • 对于没有 dropout 的模型,CV + PP 的梯度几乎所无偏的。

    • 对于存在 dropout 的模型,CV + PP he CVD + PP 梯度的bias 和方差通常小于 NSNS + PP